// gzip压缩
// const CompressionWebpackPlugin = require('compression-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
  productionSourceMap: false,
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000/',
        // ws: true,
        changeOrigin: true,
      },
      '/svg': {
        target: 'http://localhost:3000/',
        // ws: true,
        changeOrigin: true,
      },
      '/design': {
        target: 'http://localhost:3000/',
        // ws: true,
        changeOrigin: true,
      },
    },
  },
  lintOnSave: false,
  runtimeCompiler: true,
  css: {
    extract: false,
  },
  chainWebpack: (config) => {
    config.optimization.minimizer('terser').tap((args) => {
      args[0].terserOptions.compress.drop_console = true; // 去除log
      return args;
    });

    let miniCssExtractPlugin = new MiniCssExtractPlugin({
      filename: 'assets/[name].[hash:8].css',
      chunkFilename: 'assets/[name].[hash:8].css',
    });
    config.plugin('extract-css').use(miniCssExtractPlugin);
    // Vue-cli4：引入全局SCSS文件（通用变量）
    // const oneOfsMap = config.module.rule('scss').oneOfs.store;
    // oneOfsMap.forEach((item) => {
    //   item
    //     .use('sass-resources-loader')
    //     .loader('sass-resources-loader')
    //     .options({
    //       // 公用scss
    //       resources: './src/assets/css/_setting.scss',
    //     })
    //     .end();
    // });
  },
  configureWebpack: (config) => {
    // console.log('config', appName);
    // console.log("config");
    // console.log(config);
    // console.log("process.env.NODE_ENV");
    // console.log(process.env.NODE_ENV);

    // if (process.env.NODE_ENV === 'production') {
    //   // 为生产环境修改配置...
    //   //gzip压缩
    //   const productionGzipExtensions = ['html', 'js', 'css'];
    //   config.plugins.push(
    //     new CompressionWebpackPlugin({
    //       filename: '[path].gz[query]',
    //       algorithm: 'gzip',
    //       test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
    //       threshold: 10240, // 只有大小大于该值的资源会被处理 10240
    //       minRatio: 0.8, // 只有压缩率小于这个值的资源才会被处理
    //       deleteOriginalAssets: false, // 删除原文件
    //     })
    //   );
    // } else {
    //   // 为开发环境修改配置...
    // }

    return {
      externals: {
        //忽略打包
        // VUE: "VUE"
        // 'jquery':'$'
      },
      //   plugins: [new TerserPlugin()]
    };
  },
};
